$(function () {
    $("#emp_datagrid").datagrid({
        url:"/employee/list",
        fit:true,
        fitColumns:true,
        pagination:true,//分页
        rownumbers:true,
        striped:true,//斑马线
        //为true,只允许选择一行
        singleSelect:true,
        toolbar:"#tb",
        columns:[[
            {field:"x",checkbox:true},            //设置复选框
            {field:"id",title:"编号",hidden:true}, //为id设置隐藏域
            {field:"username",title:"用户名",width:100},
            {field:"realname",title:"真实名字",width:100},
            {field:"tel",title:"联系方式",width:100},
            {field:"email",title:"邮箱",width:100},
            {field:"hiredate",title:"入职日期",width:100},
            {field:"dept",title:"部门",width:100,formatter:function(value,row,index){
                if (value){
                    return value.name;
                }else{
                    return "未分配部门";
                }

            }},
            {field:"state",title:"状态",width:100,formatter:function(value,row,index){
                if (value==1){
                    return "<p color='green'>在职</p>";
                }else if(value==0){
                    return "<p color='red'>离职</p>";
                }
            }},
            {field:"admin",title:"是否超级管理员",width:100,formatter:function(value,row,index){
                return value ? "是":"否";
            }}
        ]],
        //添加行点击事件:根据员工的状态修改离职/复职按钮的显示
        onClickRow:function(index,row){
            if (row.state==1){
                $("#change_btn").linkbutton({
                    text:"<font color='red'>离职</font>"
                })
            }else{
                $("#change_btn").linkbutton({
                    text: "<font color='green'>在职</font>"
                })
            }
        }
    });

    //end-emp_datagrid
    $("#emp_dialog").dialog({
        width:400,
        height:500,
        closable:true, //可以关闭
        closed:true, //默认是关闭的
        buttons:"#bb" //添加底部的保存|取消的按钮
    })
})

//添加
function add(){
    //由于添加和编辑公用一个对话框,所以需要事先将对话框中form表单的内容清空
    $("#editForm").form("clear");
    //打开对话框
    $("#emp_dialog").dialog("open");
    //将其标题设置为添加
    $("#emp_dialog").dialog("setTitle","员工添加");
}

//编辑
function edit(){
    //获取表格中选中的那一行数据
    var row = $("#emp_datagrid").datagrid("getSelected");
    if (!row){
        $.messager.alert("温馨提示","请选择要编辑的数据");
        return;
    }
    //清空form表单的数据
    $("#editForm").form("clear");
    //部门 的数据要手动设置
    if(row.dept){
        row["dept.id"] = row.dept.id;
    }
    $("#editForm").form("load",row);
    $("#emp_dialog").dialog("open");
    $("#emp_dialog").dialog("setTitle","员工编辑");
    //角色组件的名字有点特殊不能使用同名原则进行赋值,需要手动赋值
    $.get("/role/queryRoleIdByEmpId?empId="+row.id,function(data){
        $("#roleIds").combobox("setValues",data);
    })
}

//保存
function save(){
    //先获取员工的id
    var id = $("#empId").val();
    var url = "/employee/save";
    //判断id,如果有值,说明是在编辑
    if (id){
        url="/employee/update";
    }
    //
    $("#editForm").form("submit",{
        url:url,
        onSubmit:function(param){
            var ids = $("#roleIds").combobox("getValues");
            for (var i=0;i<ids.length;i++){
                param["roles["+i+"].id"] = ids[i];
            }
        },
        success:function(data){
        var json = $.parseJSON(data);
        if(!json.success){
            $.messager.alert("温馨提示",json.msg);
        }else{
            $.messager.alert("温馨提示","保存成功");
            //关闭对话框
            $("#emp_dialog").dialog("close");
            //刷新表格数据
            $("#emp_datagrid").datagrid("load");
        }}
    });
}

//更改员工状态state
function changeState(){
    var row = $("#emp_datagrid").datagrid("getSelected");
    if (!row){
        $.messager.alert("温馨提示","请选择要更改状态的数据");
        return;
    }
    $.messager.confirm('确认','您确认要执行这个操作吗?',function(r){
        if (r){
            //发起请求修改状态
            $.get("/employee/changeState",{id:row.id},function(data){
                if (data.success){
                    $("#emp_datagrid").datagrid("load");
                }else{
                    $.messager.alert("温馨提示",data.msg);
                }
            })
        }
    })
}

//刷新
function reload(){
    $("#emp_datagrid").datagrid("load");
}

//取消
function cancel(){
    $("#emp_dialog").dialog("close");
}

//高级查询
function query(){
//建议使用easyui的获取组件数据的方法
    var keywords = $("#keywords").textbox("getValue");
    var beginDate = $("#beginDate").datebox("getValue");
    var endDate= $("#endDate").datebox("getValue");
    var deptId= $("#deptId").textbox("getValue");

    //高级查询:实际上是加上一些查询条件重新刷新页面的过程,调用datagrid的load方法即可
    $("#emp_datagrid").datagrid("load",{
        keywords:keywords,
        beginDate:beginDate,
        endDate:endDate,
        deptId:deptId

    });
}